package com.scrx.ymg.dao.seckill;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.scrx.ymg.entity.BodyCount;
import com.scrx.ymg.entity.OrderForm;
import com.scrx.ymg.entity.OrderFormDetails;
import com.scrx.ymg.entity.OtherInfo;
import com.scrx.ymg.entity.OtherMoney;
import com.scrx.ymg.entity.SeckillProduct;

public interface ISeckillDao {
	
	/**
	 * 得到秒杀商品集合
	 * @return
	 */
	public List<SeckillProduct> getSeckillList(int agentID);
	
	/**
	 * 得到秒杀商品
	 * @return
	 */
	public SeckillProduct getSeckillOne(int id);
    /**
     * 创建秒杀订单
     * @param seckill
     * @param order
     * @return
     */
	public String saveandUpdate(SeckillProduct seckill, OrderForm order,int num);
    /**
     * 根据用户查询秒杀订单
     * @param userID
     * @return
     */
	public OrderFormDetails getSeckillOrderForm(int userID,int productId);
    
	
	/**
	 * 新建秒杀广告
	 * @param product
	 * @return
	 */
	public String saveSeckillProduct(SeckillProduct product, MultipartFile productFile, String productFilePath,
			MultipartFile publicityFile, String publicityFilePath,MultipartFile detailFile,String detailFilePath);
    
	/**
	 * 修改秒杀广告
	 * @param product
	 * @return
	 */
	public String updateSeckillOne(SeckillProduct product, MultipartFile productFile, String productFilePath,
			MultipartFile publicityFile, String publicityFilePath,MultipartFile detailFile,String detailFilePath);
    
	/**
	 * 删除秒杀广告
	 * @param product
	 * @return
	 */
	public String deleteSeckillOne(SeckillProduct product);
    
	/**
	 * 查询秒杀广告
	 * @param product
	 * @param pageNum
	 * @param pageCount
	 * @return
	 */
	public Map<Object, Object> selectSeckillProductList(SeckillProduct product, int pageNum, int pageCount,String startTime,String endTime);
    
	/**
	 * 得到异业商家
	 * @param info
	 * @return
	 */
	public List<OtherInfo> getOtherInfo(OtherInfo info);

     /**
      * 根据核销验证码查询订单
      * @param code
      * @return
      */
	public OrderForm getoOrderFormByCode(String code);
    
	/**
	 * 根据id得到异业商家
	 * @param id
	 * @return
	 */
	public OtherInfo getOtherInfoById(Integer id);
    
	/**
	 * 更新异业信息
	 * @param oldinfo
	 * @return
	 */
	public String updateOtherInfo(OtherInfo oldinfo);
    
	/**
	 * 得到异业商家营业额
	 * @param otherId
	 * @return
	 */
	public OtherMoney getOtherMoney(int otherId);
    
	/**
	 * 根据商品名得到团购商品
	 * @param productName
	 * @return
	 */
	public SeckillProduct getSeckillOneByProductName(String productName);
    
	/**
	 * 根据条件查询秒杀人数
	 * @param bodyCount
	 */
	public BodyCount getBodyCount(BodyCount bodyCount);
    
	/**
	 * 更新统计秒杀人数
	 * @param bodyCount
	 * @return
	 */
	public String updateBodyCount(BodyCount bodyCount);
    
	/**
	 * 新建统计秒杀人数
	 * @param bodyCount
	 * @return
	 */
	public String insertBodyCount(BodyCount bodyCount);
    
	/**
	 * 得到异业商家分页
	 * @param info
	 * @param pageNum
	 * @param pageCount
	 * @return
	 */
	public Map<Object, Object> getOtherInfo(OtherInfo info, int pageNum, int pageCount);
    
	/**
	 * 审核异业并新建账户
	 * @param other
	 * @param newmoney
	 * @return
	 */
	public String updateOtherInfo(OtherInfo other, OtherMoney newmoney);
    
	/**
	 * 删除异业商家
	 * @param oldother
	 * @return
	 */
	public String deleteOtherInfo(OtherInfo oldother);
    
	/**
	 * 根据日期和代理商id查询秒杀广告
	 * @param startDate
	 * @param agentId
	 * @return
	 */
	public SeckillProduct getSeckillByDateAndAgentId(String startDate, Integer agentId);
    
	/**
	 * 根据订单号查询秒杀广告
	 * @param orderNum
	 * @return
	 */
	public SeckillProduct getSeckillOneByOrderNum(String orderNum);
    
	/**
	 * 保存秒杀广告
	 * @param seckill
	 * @return
	 */
	public String saveSeckill(SeckillProduct seckill);
    
	/**
	 * 更新秒杀广告
	 * @param seckill
	 * @return
	 */
	public String updateSeckillProduct(SeckillProduct seckill);
	
	/**
	 * 更新秒杀广告
	 * @param seckill
	 * @return
	 */
	public String updateSeckillProductAD(String thisTime);

}
